{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Time series differentiation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Time series differentiation involves computing the differences between consecutive observations in the time series. When it comes to training forecasting models, differentiation offers the advantage of focusing on relative rates of change rather than directly attempting to model the absolute values. Once the predictions have been estimated, this transformation can be easily reversed to restore the values to their original scale.\n",
    "\n",
    "This methodology is very useful when dealing with time series that exhibit trends, as not all models can capture such trends properly. Among the many machine learning techniques, tree-based models, including decision trees, random forests, and gradient boosting machines (GBMs), stand out for their effectiveness and broad applicability to various domains. Nonetheless, these models are limited in their ability to extrapolate. Their inability to project values outside the observed range during training inevitably results in predicted values that deviate from the underlying trend.\n",
    "\n",
    "Skforecast introduces the `differentiation` parameter within its forecasters. This parameter indicates that a differentiation process must be applied before training the model, and this task is performed through the internal use of a new class named [`TimeSeriesDifferentiator`](../api/preprocessing.html#skforecast.preprocessing.preprocessing.TimeSeriesDifferentiator). It is important to note that the entire differentiation process is automated and its effects are seamlessly reversed during the prediction phase. This ensures that the resulting forecast values are in the original scale of the time series data."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"admonition note\" name=\"html-admonition\" style=\"background: rgba(0,191,191,.1); padding-top: 0px; padding-bottom: 6px; border-radius: 8px; border-left: 8px solid #00bfa5; border-color: #00bfa5; padding-left: 10px; padding-right: 10px;\">\n",
    "\n",
    "<p class=\"title\">\n",
    "    <i style=\"font-size: 18px; color:#00bfa5;\"></i>\n",
    "    <b style=\"color: #00bfa5;\">&#128161 Tip</b>\n",
    "</p>\n",
    "\n",
    "To learn more about modeling time series differentiation, visit our example: <a href=\"https://www.cienciadedatos.net/documentos/py49-modelling-time-series-trend-with-tree-based-models.html\">Modelling time series trend with tree based models</a>.\n",
    "\n",
    "</div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## TimeSeriesDifferentiator\n",
    "\n",
    "[`TimeSeriesDifferentiator`](../api/preprocessing.html#skforecast.preprocessing.preprocessing.TimeSeriesDifferentiator) is a custom transformer that follows the preprocessing sklearn API. This means it has the method `fit`, `transform`, `fit_transform` and `inverse_transform`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Libraries\n",
    "# ==============================================================================\n",
    "import numpy as np\n",
    "from skforecast.preprocessing import TimeSeriesDifferentiator"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Original time series   : [ 5.  8. 12. 10. 14. 17. 21. 19.]\n",
      "Differenced time series: [nan  3.  4. -2.  4.  3.  4. -2.]\n"
     ]
    }
   ],
   "source": [
    "# Differentiation with TimeSeriesDifferentiator\n",
    "# ==============================================================================\n",
    "y = np.array([5, 8, 12, 10, 14, 17, 21, 19], dtype=float)\n",
    "diffenciator = TimeSeriesDifferentiator()\n",
    "diffenciator.fit(y)\n",
    "y_diff = diffenciator.transform(y)\n",
    "\n",
    "print(f\"Original time series   : {y}\")\n",
    "print(f\"Differenced time series: {y_diff}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The process of differencing can be reversed (integration) using the `inverse_transform` method."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 5.,  8., 12., 10., 14., 17., 21., 19.])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "diffenciator.inverse_transform(y_diff)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"admonition note\" name=\"html-admonition\" style=\"background: rgba(255,145,0,.1); padding-top: 0px; padding-bottom: 6px; border-radius: 8px; border-left: 8px solid #ff9100; border-color: #ff9100; padding-left: 10px; padding-right: 10px\">\n",
    "\n",
    "<p class=\"title\">\n",
    "    <i style=\"font-size: 18px; color:#ff9100; border-color: #ff1744;\"></i>\n",
    "    <b style=\"color: #ff9100;\"> <span style=\"color: #ff9100;\">&#9888;</span> Warning</b>\n",
    "</p>\n",
    "\n",
    "The inverse transformation process, <code>inverse_transform</code>, is applicable only to the same time series that was previously differentiated using the same <code>TimeSeriesDifferentiator</code> object. This limitation arises from the need to use the initial <i>n</i> values of the time series (<i>n</i> equals the order of differentiation) to successfully reverse the differentiation. These values are stored when the <code>fit</code> method is executed.\n",
    "\n",
    "</div>\n",
    "\n",
    "<br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"admonition note\" name=\"html-admonition\" style=\"background: rgba(0,184,212,.1); padding-top: 0px; padding-bottom: 6px; border-radius: 8px; border-left: 8px solid #00b8d4; border-color: #00b8d4; padding-left: 10px; padding-right: 10px;\">\n",
    "\n",
    "<p class=\"title\">\n",
    "    <i style=\"font-size: 18px; color:#00b8d4;\"></i>\n",
    "    <b style=\"color: #00b8d4;\">&#9998 Note</b>\n",
    "</p>\n",
    "\n",
    "An additional method <code>inverse_transform_next_window</code> is available in the <code>TimeSeriesDifferentiator</code>. This method is designed to be used inside the Forecasters to reverse the differentiation of the predicted values. If the Forecaster estimator is trained with a differentiated time series, then the predicted values will be differentiated as well. The <code>inverse_transform_next_window</code> method allows to return the predictions to the original scale, with the assumption that they start immediately after the last values observed (<code>last_window</code>).\n",
    "\n",
    "</div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Forecasting with differentiation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Data manipulation\n",
    "# ==============================================================================\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "# Plots\n",
    "# ==============================================================================\n",
    "import matplotlib.pyplot as plt\n",
    "from skforecast.plot import set_dark_theme\n",
    "\n",
    "# Modelling and Forecasting\n",
    "# ==============================================================================\n",
    "from xgboost import XGBRegressor\n",
    "from sklearn.ensemble import RandomForestRegressor\n",
    "from sklearn.metrics import mean_absolute_error\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from skforecast.recursive import ForecasterRecursive\n",
    "from skforecast.preprocessing import TimeSeriesDifferentiator\n",
    "from skforecast.model_selection import TimeSeriesFold, backtesting_forecaster"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train dates : 1949-01-01 00:00:00 --- 1956-12-01 00:00:00  (n=96)\n",
      "Test dates  : 1957-01-01 00:00:00 --- 1960-12-01 00:00:00  (n=48)\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 700x250 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Download data\n",
    "# ==============================================================================\n",
    "url = (\n",
    "    'https://raw.githubusercontent.com/JoaquinAmatRodrigo/Estadistica-machine-learning-python/'\n",
    "    'master/data/AirPassengers.csv'\n",
    ")\n",
    "data = pd.read_csv(url, sep=',')\n",
    "\n",
    "# Data preprocessing\n",
    "# ==============================================================================\n",
    "data['Date'] = pd.to_datetime(data['Date'], format='%Y-%m')\n",
    "data = data.set_index('Date')\n",
    "data = data.asfreq('MS')\n",
    "data = data['Passengers']\n",
    "data = data.sort_index()\n",
    "data.head(4)\n",
    "\n",
    "# Data partition train-test\n",
    "# ==============================================================================\n",
    "end_train = '1956-12-01 23:59:59'\n",
    "print(\n",
    "    f\"Train dates : {data.index.min()} --- {data.loc[:end_train].index.max()}  \" \n",
    "    f\"(n={len(data.loc[:end_train])})\")\n",
    "print(\n",
    "    f\"Test dates  : {data.loc[end_train:].index.min()} --- {data.index.max()}  \"\n",
    "    f\"(n={len(data.loc[end_train:])})\")\n",
    "\n",
    "# Plot\n",
    "# ==============================================================================\n",
    "set_dark_theme()\n",
    "fig, ax = plt.subplots(figsize=(7, 2.5))\n",
    "data.loc[:end_train].plot(ax=ax, label='train')\n",
    "data.loc[end_train:].plot(ax=ax, label='test')\n",
    "ax.legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Two autoregressive forecasters are created, one with a scikit-learn `RandomForestRegressor` and the other with an `XGBoost`. Both are trained on data from 1949-01-01 to 1956-12-01 and produce forecasts for the next 48 months (4 years)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error (MAE) Random Forest: 54.79\n",
      "Error (MAE) Gradient Boosting: 49.16\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 700x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Forecasting without differentiation\n",
    "# ==============================================================================\n",
    "steps = len(data.loc[end_train:])\n",
    "\n",
    "# Forecasters\n",
    "forecaster_rf = ForecasterRecursive(\n",
    "                    estimator = RandomForestRegressor(random_state=963),\n",
    "                    lags      = 12\n",
    "                )\n",
    "forecaster_gb = ForecasterRecursive(\n",
    "                    estimator = XGBRegressor(random_state=963),\n",
    "                    lags      = 12\n",
    "                )\n",
    "\n",
    "# Train\n",
    "forecaster_rf.fit(data.loc[:end_train])\n",
    "forecaster_gb.fit(data.loc[:end_train])\n",
    "\n",
    "# Predict\n",
    "predictions_rf = forecaster_rf.predict(steps=steps)\n",
    "predictions_gb = forecaster_gb.predict(steps=steps)\n",
    "\n",
    "# Error\n",
    "error_rf = mean_absolute_error(data.loc[end_train:], predictions_rf)\n",
    "error_gb = mean_absolute_error(data.loc[end_train:], predictions_gb)\n",
    "print(f\"Error (MAE) Random Forest: {error_rf:.2f}\")\n",
    "print(f\"Error (MAE) Gradient Boosting: {error_gb:.2f}\")\n",
    "\n",
    "# Plot\n",
    "fig, ax = plt.subplots(figsize=(7, 3), sharex=True, sharey=True)\n",
    "data.loc[:end_train].plot(ax=ax, label='train')\n",
    "data.loc[end_train:].plot(ax=ax, label='test')\n",
    "predictions_rf.plot(ax=ax, label='Random Forest')\n",
    "predictions_gb.plot(ax=ax, label='Gradient Boosting')\n",
    "ax.set_title('Forecasting without differentiation')\n",
    "ax.set_xlabel('')\n",
    "ax.legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The plot shows that none of the models is capable of accurately predicting the trend. After a few steps, the predictions become nearly constant, close to the maximum values observed in the training data."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next, two new forecasters are trained using the same configuration, but with the argument `differentiation = 1`. This activates the internal process of differencing (order 1) the time series before training the model, and reverses the differentiation (also known as integration) for the predicted values."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error (MAE) Random Forest: 24.91\n",
      "Error (MAE) Gradient Boosting: 25.49\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 700x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Forecasting with differentiation\n",
    "# ==============================================================================\n",
    "steps = len(data.loc[end_train:])\n",
    "\n",
    "# Forecasters\n",
    "forecaster_rf = ForecasterRecursive(\n",
    "                    estimator       = RandomForestRegressor(random_state=963),\n",
    "                    lags            = 12,\n",
    "                    differentiation = 1\n",
    "                )\n",
    "forecaster_gb = ForecasterRecursive(\n",
    "                    estimator       = XGBRegressor(random_state=963),\n",
    "                    lags            = 12,\n",
    "                    differentiation = 1\n",
    "                )\n",
    "\n",
    "# Train\n",
    "forecaster_rf.fit(data.loc[:end_train])\n",
    "forecaster_gb.fit(data.loc[:end_train])\n",
    "\n",
    "# Predict\n",
    "predictions_rf = forecaster_rf.predict(steps=steps)\n",
    "predictions_gb = forecaster_gb.predict(steps=steps)\n",
    "\n",
    "# Error\n",
    "error_rf = mean_absolute_error(data.loc[end_train:], predictions_rf)\n",
    "error_gb = mean_absolute_error(data.loc[end_train:], predictions_gb)\n",
    "print(f\"Error (MAE) Random Forest: {error_rf:.2f}\")\n",
    "print(f\"Error (MAE) Gradient Boosting: {error_gb:.2f}\")\n",
    "\n",
    "# Plot\n",
    "fig, ax = plt.subplots(figsize=(7, 3), sharex=True, sharey=True)\n",
    "data.loc[:end_train].plot(ax=ax, label='train')\n",
    "data.loc[end_train:].plot(ax=ax, label='test')\n",
    "predictions_rf.plot(ax=ax, label='Random Forest')\n",
    "predictions_gb.plot(ax=ax, label='Gradient Boosting')\n",
    "ax.set_title('Forecasting with differentiation')\n",
    "ax.set_xlabel('')\n",
    "ax.legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This time, both models are able to follow the trend in their predictions."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"admonition note\" name=\"html-admonition\" style=\"background: rgba(255,145,0,.1); padding-top: 0px; padding-bottom: 6px; border-radius: 8px; border-left: 8px solid #ff9100; border-color: #ff9100; padding-left: 10px; padding-right: 10px\">\n",
    "\n",
    "<p class=\"title\">\n",
    "    <i style=\"font-size: 18px; color:#ff9100; border-color: #ff1744;\"></i>\n",
    "    <b style=\"color: #ff9100;\"> <span style=\"color: #ff9100;\">&#9888;</span> Warning</b>\n",
    "</p>\n",
    "\n",
    "Derivation is a useful strategy for overcoming the problems of modeling trend when using a tree-based model, but it is not a magic bullet. By transforming the original time series values into the rate of change (first derivative), the model can extrapolate the original data once the transformation is reversed. Note, however, that the model is still limited to predicting rates of change within the range observed in the training data. \n",
    "\n",
    "For example, if the rate of change increases over time and the changes become larger and larger, the model will underestimate the increases and decreases, and the resulting predictions will deviate from the actual trend.\n",
    "\n",
    "</div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Internal differentiation vs pre-processing\n",
    "\n",
    "Forecasters manage the differentiation process internally, so there is no need for additional pre-processing of the time series and post-processing of the predictions. This has several advantages, but before diving in, the results of both approaches are compared."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1957-01-01    312.00\n",
       "1957-02-01    302.93\n",
       "1957-03-01    341.61\n",
       "1957-04-01    338.03\n",
       "1957-05-01    341.97\n",
       "Freq: MS, Name: pred, dtype: float64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Time series differentiated by preprocessing before training\n",
    "# ==============================================================================\n",
    "diferenciator = TimeSeriesDifferentiator(order=1)\n",
    "data_diff = diferenciator.fit_transform(data.to_numpy())\n",
    "data_diff = pd.Series(data_diff, index=data.index).dropna()\n",
    "\n",
    "forecaster = ForecasterRecursive(\n",
    "                 estimator = RandomForestRegressor(random_state=963),\n",
    "                 lags      = 15\n",
    "             )\n",
    "forecaster.fit(y=data_diff.loc[:end_train])\n",
    "predictions_diff = forecaster.predict(steps=steps)\n",
    "\n",
    "# Revert differentiation to obtain final predictions\n",
    "last_value_train = data.loc[:end_train].iloc[[-1]]\n",
    "predictions_1 = pd.concat([last_value_train, predictions_diff]).cumsum()[1:]\n",
    "predictions_1 = predictions_1.asfreq('MS')\n",
    "predictions_1.name = 'pred'\n",
    "predictions_1.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1957-01-01    312.00\n",
       "1957-02-01    302.93\n",
       "1957-03-01    341.61\n",
       "1957-04-01    338.03\n",
       "1957-05-01    341.97\n",
       "Freq: MS, Name: pred, dtype: float64"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Time series differentiated internally by the forecaster\n",
    "# ==============================================================================\n",
    "forecaster = ForecasterRecursive(\n",
    "                 estimator       = RandomForestRegressor(random_state=963),\n",
    "                 lags            = 15,\n",
    "                 differentiation = 1\n",
    "             )\n",
    "\n",
    "forecaster.fit(y=data.loc[:end_train])\n",
    "predictions_2 = forecaster.predict(steps=steps)\n",
    "predictions_2.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compare both predictions\n",
    "# ==============================================================================\n",
    "pd.testing.assert_series_equal(predictions_1, predictions_2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The predictions are the same for both approaches."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The results are also equivalent when a transformation, such as standardization, is applied to the time series. In this case, the order of the steps is: transformation -> differentiation -> model fitting -> prediction -> inverse differentiation -> inverse transformation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1957-01-01    312.43\n",
       "1957-02-01    303.45\n",
       "1957-03-01    342.44\n",
       "1957-04-01    340.00\n",
       "1957-05-01    343.82\n",
       "Freq: MS, Name: pred, dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "1957-01-01    312.43\n",
       "1957-02-01    303.45\n",
       "1957-03-01    342.44\n",
       "1957-04-01    340.00\n",
       "1957-05-01    343.82\n",
       "Freq: MS, Name: pred, dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Time series differentiated by preprocessing before training\n",
    "# ==============================================================================\n",
    "scaler = StandardScaler()\n",
    "scaler.fit(data.loc[:end_train].to_numpy().reshape(-1, 1))\n",
    "data_scaled = scaler.transform(data.to_numpy().reshape(-1, 1))\n",
    "data_scaled = pd.Series(data_scaled.flatten(), index=data.index)\n",
    "data_scaled_diff = TimeSeriesDifferentiator(order=1).fit_transform(data_scaled.to_numpy())\n",
    "data_scaled_diff = pd.Series(data_scaled_diff, index=data.index).dropna()\n",
    "\n",
    "forecaster = ForecasterRecursive(\n",
    "                 estimator     = RandomForestRegressor(random_state=963),\n",
    "                 lags          = 15,\n",
    "             )\n",
    "forecaster.fit(y=data_scaled_diff.loc[:end_train])\n",
    "predictions_diff = forecaster.predict(steps=steps)\n",
    "\n",
    "# Revert differentiation to obtain final predictions\n",
    "last_value_train = data_scaled.loc[:end_train].iloc[[-1]]\n",
    "predictions_1 = pd.concat([last_value_train, predictions_diff]).cumsum()[1:]\n",
    "# Revert the scaling\n",
    "predictions_1 = scaler.inverse_transform(predictions_1.to_numpy().reshape(-1, 1))\n",
    "predictions_1 = pd.Series(predictions_1.flatten(), index=data.loc[end_train:].index.to_numpy())\n",
    "predictions_1 = predictions_1.asfreq('MS')\n",
    "predictions_1.name = 'pred'\n",
    "display(predictions_1.head(5))\n",
    "\n",
    "\n",
    "# Time series differentiated internally by the forecaster\n",
    "# ==============================================================================\n",
    "forecaster = ForecasterRecursive(\n",
    "                 estimator       = RandomForestRegressor(random_state=963),\n",
    "                 lags            = 15,\n",
    "                 differentiation = 1,\n",
    "                 transformer_y = StandardScaler()\n",
    "             )\n",
    "\n",
    "forecaster.fit(y=data.loc[:end_train])\n",
    "predictions_2 = forecaster.predict(steps=steps)\n",
    "display(predictions_2.head(5))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compare both predictions\n",
    "# ==============================================================================\n",
    "pd.testing.assert_series_equal(predictions_1, predictions_2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next, the outcomes of the [backtesting process](../user_guides/backtesting.html) are subjected to a comparative analysis. This comparison is more complex than the previous one, as the process of undoing the differentiation must be performed separately for each backtesting fold."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "45d436728a8e46baaa185b3e1833e6f2",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/10 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>fold</th>\n",
       "      <th>pred_diff</th>\n",
       "      <th>backtesting_fold_id</th>\n",
       "      <th>previous_overved_value</th>\n",
       "      <th>summed_value</th>\n",
       "      <th>pred</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1957-01-01</th>\n",
       "      <td>0</td>\n",
       "      <td>6.00</td>\n",
       "      <td>0</td>\n",
       "      <td>306.0</td>\n",
       "      <td>312.00</td>\n",
       "      <td>312.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1957-02-01</th>\n",
       "      <td>0</td>\n",
       "      <td>-9.07</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-9.07</td>\n",
       "      <td>302.93</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1957-03-01</th>\n",
       "      <td>0</td>\n",
       "      <td>38.68</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>38.68</td>\n",
       "      <td>341.61</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1957-04-01</th>\n",
       "      <td>0</td>\n",
       "      <td>-3.58</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-3.58</td>\n",
       "      <td>338.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1957-05-01</th>\n",
       "      <td>0</td>\n",
       "      <td>3.94</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.94</td>\n",
       "      <td>341.97</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            fold  pred_diff  backtesting_fold_id  previous_overved_value  \\\n",
       "1957-01-01     0       6.00                    0                   306.0   \n",
       "1957-02-01     0      -9.07                    0                     0.0   \n",
       "1957-03-01     0      38.68                    0                     0.0   \n",
       "1957-04-01     0      -3.58                    0                     0.0   \n",
       "1957-05-01     0       3.94                    0                     0.0   \n",
       "\n",
       "            summed_value    pred  \n",
       "1957-01-01        312.00  312.00  \n",
       "1957-02-01         -9.07  302.93  \n",
       "1957-03-01         38.68  341.61  \n",
       "1957-04-01         -3.58  338.03  \n",
       "1957-05-01          3.94  341.97  "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Backtesting with the time series differentiated by preprocessing before training\n",
    "# ==============================================================================\n",
    "steps = 5\n",
    "forecaster_1 = ForecasterRecursive(\n",
    "                   estimator = RandomForestRegressor(random_state=963),\n",
    "                   lags      = 15\n",
    "               )\n",
    "\n",
    "cv = TimeSeriesFold(\n",
    "         steps                 = steps,\n",
    "         initial_train_size    = len(data_diff.loc[:end_train]),\n",
    "         refit                 = True,\n",
    "         fixed_train_size      = False, \n",
    "         allow_incomplete_fold = True\n",
    "     )\n",
    "\n",
    "_, predictions_1 = backtesting_forecaster(\n",
    "                       forecaster    = forecaster_1,\n",
    "                       y             = data_diff,\n",
    "                       cv            = cv,\n",
    "                       metric        = 'mean_squared_error',\n",
    "                       n_jobs        = 'auto',\n",
    "                       verbose       = False,\n",
    "                       show_progress = True\n",
    "                   )\n",
    "\n",
    "# Revert differentiation of predictions. Predictions of each fold must be reverted\n",
    "# individually. An id is added to each prediction to identify the fold to which it belongs.\n",
    "predictions_1 = predictions_1.rename(columns={'pred': 'pred_diff'})\n",
    "folds = len(predictions_1) / steps\n",
    "folds = int(np.ceil(folds))\n",
    "predictions_1['backtesting_fold_id'] = np.repeat(range(folds), steps)[:len(predictions_1)]\n",
    "\n",
    "# Add the previously observed value of the time series (only to the first prediction of each fold)\n",
    "previous_overved_values = data.shift(1).loc[predictions_1.index].iloc[::steps]\n",
    "previous_overved_values.name = 'previous_overved_value'\n",
    "predictions_1 = predictions_1.merge(\n",
    "                    previous_overved_values,\n",
    "                    left_index  = True,\n",
    "                    right_index = True,\n",
    "                    how         = 'left'\n",
    "                )\n",
    "predictions_1 = predictions_1.fillna(0)\n",
    "predictions_1['summed_value'] = (\n",
    "    predictions_1['pred_diff'] + predictions_1['previous_overved_value']\n",
    ")\n",
    "\n",
    "# Revert differentiation using the cumulative sum by fold\n",
    "predictions_1['pred'] = (\n",
    "    predictions_1\n",
    "    .groupby('backtesting_fold_id')\n",
    "    .apply(lambda x: x['summed_value'].cumsum(), include_groups=False)\n",
    "    .to_numpy()\n",
    ")\n",
    "\n",
    "predictions_1.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "731d4d5145704aeb9c66debf12b3d669",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/10 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>fold</th>\n",
       "      <th>pred</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1957-01-01</th>\n",
       "      <td>0</td>\n",
       "      <td>312.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1957-02-01</th>\n",
       "      <td>0</td>\n",
       "      <td>302.93</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1957-03-01</th>\n",
       "      <td>0</td>\n",
       "      <td>341.61</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1957-04-01</th>\n",
       "      <td>0</td>\n",
       "      <td>338.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1957-05-01</th>\n",
       "      <td>0</td>\n",
       "      <td>341.97</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            fold    pred\n",
       "1957-01-01     0  312.00\n",
       "1957-02-01     0  302.93\n",
       "1957-03-01     0  341.61\n",
       "1957-04-01     0  338.03\n",
       "1957-05-01     0  341.97"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Backtesting with the time series differentiated internally\n",
    "# ==============================================================================\n",
    "forecaster_2 = ForecasterRecursive(\n",
    "                   estimator       = RandomForestRegressor(random_state=963),\n",
    "                   lags            = 15,\n",
    "                   differentiation = 1\n",
    "               )\n",
    "\n",
    "cv = TimeSeriesFold(\n",
    "         steps                 = steps,\n",
    "         initial_train_size    = len(data.loc[:end_train]),\n",
    "         refit                 = True,\n",
    "         fixed_train_size      = False, \n",
    "         allow_incomplete_fold = True,\n",
    "         differentiation       = 1  # Differentiation must be specified in the cv object\n",
    "     )\n",
    "\n",
    "_, predictions_2 = backtesting_forecaster(\n",
    "                       forecaster    = forecaster_2,\n",
    "                       y             = data,\n",
    "                       cv            = cv,\n",
    "                       metric        = 'mean_squared_error',\n",
    "                       n_jobs        = 'auto',\n",
    "                       verbose       = False,\n",
    "                       show_progress = True\n",
    "                   )\n",
    "\n",
    "predictions_2.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compare both predictions\n",
    "# ==============================================================================\n",
    "pd.testing.assert_series_equal(predictions_1['pred'], predictions_2['pred'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally, the validation is also performed for the predictions obtained with `predict_boostrapping`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Time series differentiated by preprocessing before training\n",
    "# ==============================================================================\n",
    "forecaster_1 = ForecasterRecursive(\n",
    "                   estimator = RandomForestRegressor(random_state=963),\n",
    "                   lags      = 15\n",
    "               )\n",
    "\n",
    "forecaster_1.fit(y=data_diff.loc[:end_train], store_in_sample_residuals=True)\n",
    "boot_predictions_diff = forecaster_1.predict_bootstrapping(\n",
    "                            steps  = steps,\n",
    "                            n_boot = 10\n",
    "                        )\n",
    "# Revert differentiation of predictions\n",
    "last_value_train = data.loc[:end_train].iloc[[-1]]\n",
    "boot_predictions_1 = boot_predictions_diff.copy()\n",
    "boot_predictions_1.loc[last_value_train.index[0]] = last_value_train.values[0]\n",
    "boot_predictions_1 = boot_predictions_1.sort_index()\n",
    "boot_predictions_1 = boot_predictions_1.cumsum(axis=0).iloc[1:,]\n",
    "boot_predictions_1 = boot_predictions_1.asfreq('MS')\n",
    "\n",
    "\n",
    "# Time series differentiated internally by the forecaster\n",
    "# ==============================================================================\n",
    "forecaster_2 = ForecasterRecursive(\n",
    "                   estimator       = RandomForestRegressor(random_state=963),\n",
    "                   lags            = 15,\n",
    "                   differentiation = 1\n",
    "               )\n",
    "\n",
    "forecaster_2.fit(y=data.loc[:end_train], store_in_sample_residuals=True)\n",
    "boot_predictions_2 = forecaster_2.predict_bootstrapping(steps=steps, n_boot=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compare both predictions\n",
    "# ==============================================================================\n",
    "pd.testing.assert_frame_equal(boot_predictions_1, boot_predictions_2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Conslusions\n",
    "\n",
    "If, as demonstrated, the values are equivalent when differentiating the time series in a preprocessing step or when allowing the Forecaster to manage the differentiation internally, why the second alternative is better?\n",
    "\n",
    "+ Allowing the forecaster to manage all transformations internally guarantees that the same transformations are applied when the model is run on new data.\n",
    "\n",
    "+ When the model is applied to new data that does not follow immediately after the training data (for example, if a model is not retrained for each prediction phase), the forecaster automatically increases the size of the last window needed to generate the predictors, as well as applying the differentiation to the incoming data and undoing it in the final predictions.\n",
    "\n",
    "These transformations are non-trivial and very error-prone, so **skforecast** tries to avoid overcomplicating the already challenging task of forecasting time series."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "skforecast_py12",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.11"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
